package com.desksoft.ecommerce.util.html.element.data;

import java.util.List;

import org.dom4j.Element;

import com.desksoft.ecommerce.util.html.PageXml;
import com.desksoft.ecommerce.util.html.element.PageDataElement;
import com.desksoft.ecommerce.util.html.element.data.linkinput.LinkInputElement;

/***************************************
 * 版权所有：杭州迪科软件 保留所有权利
 * 创建日期: 
 * 创建作者：luoy
 * 文件名称：页面文本输入元素
 * 版本：
 * 功能：
 * 最后修改时间：
 * 修改记录：
 *****************************************/
public class PageTextDataElement extends PageDataElement {

	protected String defaultValue;	//	默认值
	
	protected String regular;		//	前端验证正则表达式
	
	protected String code;
	protected String operateid;
	protected String returnField;
	protected String attribute;
	
	protected LinkInputElement[] linkInputElementA;		//	关联输入元素数组

	public PageTextDataElement(Element element,PageXml pageXml) {
		super(element,pageXml);
		this.defaultValue = pageXml.getVarCollection().getValue(element.attributeValue("defaultValue"));
		
		this.regular = element.attributeValue("regular");
		this.code = element.attributeValue("code");
		this.operateid = element.attributeValue("operateid");
		this.returnField = element.attributeValue("return");
		this.attribute = element.attributeValue("attribute");
		
		if (this.code != null){
			Element elmt = element.element("linkinputElement");
			this.linkInputElementA = parseLinkInput(elmt,pageXml);
		}
	}
	
	/**
	 * 解析关联输入
	 */
	public LinkInputElement[] parseLinkInput(Element element,PageXml pageXml){
		if (element == null){
			return null;
		}
		List<Element> linkElement = element.elements("link");
		LinkInputElement[] linkA = new LinkInputElement[linkElement.size()];
		
		LinkInputElement link;
		for (int i=0;i<linkElement.size();i++){
			link = new LinkInputElement(linkElement.get(i));
			linkA[i] = link;
			link.setTargetElementId(this.getId());
			pageXml.getLinkInputL().add(link);
		}
		return linkA;
	}
	
	@Override
	public String toHtml() {
		return super.toHtml();
	}

	@Override
	public String appendOptions() {
		return super.appendOptions();
	}

	@Override
	public String appendAttr() {
		StringBuffer res = new StringBuffer();
		if (defaultValue!=null){
			res.append(" value='"+this.defaultValue+"' ");
		}
		if (regular!=null){
			res.append(" regular = '"+this.regular+"' ");
		}
		if (code != null){
			res.append(" code = '"+code+"' ");
		}
		if (operateid != null){
			res.append(" operateid = '"+operateid+"' ");
		}
		if (returnField != null){
			res.append(" return = '"+returnField+"' ");
		}
		if (attribute != null){
			attribute.replaceAll(";", "");
			res.append(" " + attribute + " ");
		}
		return res.toString();
	}

	public String getRegular() {
		return regular;
	}

	public void setRegular(String regular) {
		this.regular = regular;
	}

	public String getDefaultValue() {
		return defaultValue;
	}

	public void setDefaultValue(String defaultValue) {
		this.defaultValue = defaultValue;
	}
	
}
